import axios from 'axios';

console.log('[Request] 创建 axios 实例');

const request = axios.create({
  baseURL: 'http://localhost:8080',
  timeout: 5000
});

// request.js
// request.interceptors.request.use(
//   config => {
//     let token = localStorage.getItem('hr_token');
//     if (!token) {
//       token = localStorage.getItem('user_token'); // fallback 到 user_token
//     }
//     if (token) {
//       config.headers['Authorization'] = 'Bearer ' + token;
//       console.log('[Request] 添加 Authorization:', config.headers['Authorization']);
//     }
//     return config;
//   },
//   error => {
//     console.error('[Request] 请求拦截出错', error);
//     return Promise.reject(error);
//   }
// );


// request.interceptors.request.use(
//   config => {
//     let token = localStorage.getItem('hr_token');
//     if (!token) {
//       token = localStorage.getItem('user_token');
//     }
//     if (token) {
//       config.headers['Authorization'] = 'Bearer ' + token;
//       console.log('[Request] 添加 Authorization:', config.headers['Authorization']);
//     } else {
//       console.log('[Request] 未找到 token');
//     }
//     console.log('[Request] 完整的请求配置:', config);
//     return config;
//   },
//   error => {
//     console.error('[Request] 请求拦截出错', error);
//     return Promise.reject(error);
//   }
// );





request.interceptors.request.use(
  config => {
    // 打印当前页面的 token 状态
    const hrToken = localStorage.getItem('hr_token');
    const userToken = localStorage.getItem('user_token');
    console.log('[Request] 当前存储的 HR token:', hrToken);
    console.log('[Request] 当前存储的 User token:', userToken);
    
    // 根据请求URL或当前页面路径选择合适的token
    const currentPath = window.location.pathname;
    let token = null;
    
    // 特殊处理：/user/list接口应该使用HR token
    if (config.url === '/user/list') {
      token = hrToken;
    }
    // 根据当前路径或请求URL判断使用哪个token
    else if (currentPath.includes('/hr_') || config.url.includes('/hr/')) {
      // HR相关页面或接口使用HR token
      token = hrToken;
    } else if (currentPath.includes('/user_')) {
      // 用户相关页面使用用户 token
      token = userToken;
    } else if (config.url.includes('/user/')) {
      // 对于/user/开头的接口，需要进一步判断
      // 目前已知的HR使用的user接口是/user/list，已在上面特殊处理
      // 其他/user/接口使用userToken
      token = userToken;
    } else {
      // 其他情况优先使用HR token，没有则使用用户token
      token = hrToken || userToken;
    }
    
    if (token) {
      config.headers['Authorization'] = 'Bearer ' + token;
      console.log('[Request] 添加 Authorization:', config.headers['Authorization']);
    } else {
      console.log('[Request] 未找到 token，不添加 Authorization 头');
    }
    
    console.log('[Request] 请求 URL:', config.url);
    console.log('[Request] 请求方法:', config.method);
    console.log('[Request] 完整的请求头:', {...config.headers});
    
    return config;
  },
  error => {
    console.error('[Request] 请求拦截出错', error);
    return Promise.reject(error);
  }
);

export default request;